﻿$.extend({
    initselectytf: function initselectytf(selectytf) {
        var cus = 0;
        var classname = "";
        var arry = new Array();
        var $panle = $(selectytf.panle);
        var $autocomplete = $("<ul class='autocomplete'></ul>").hide().insertAfter(selectytf.inputID);
        $(selectytf.selectID).find("option").each(function (i, n) {
            arry[i] = {};
            arry[i].text = $(this).text();
            arry[i].value = $(this).attr("value");
            console.log(arry[i].value);
        });

        $(selectytf.inputID).focus(function () { if ($(selectytf.inputID).val() == "===请选择===") { $(selectytf.inputID).val(""); } });
        $(selectytf.inputID).blur(function () { if ($(selectytf.inputID).val() == "") { $(selectytf.inputID).val("===请选择==="); } });
        $(selectytf.inputID).keyup(function (event) {
            if ((event.keyCode != 38) && (event.keyCode != 40) && (event.keyCode != 13)) {
                $autocomplete.empty();
                var $SerTxt = $(selectytf.inputID).val().toLowerCase();

                if ($SerTxt != "" && $SerTxt != null) {
                    for (var k = 0; k < arry.length; k++) {
                        if (arry[k].text.toLowerCase().indexOf($SerTxt) >= 0) {
                            $("<li data='" + arry[k].value + "' title=" + arry[k].text + " class=" + classname + "><>").text(arry[k].text).appendTo($autocomplete).mouseover(function () {
                                $panle.find(".autocomplete li").removeClass("hovers");
                                $(this).css({
                                    background: "#3368c4",
                                    color: "#fff"
                                })
                            }).mouseout(function () {
                                $(this).css({
                                    background: "#fff",
                                    color: "#000"
                                })
                            }).click(function () {
                                $(selectytf.inputID).val($(this).text());
                                $autocomplete.hide()
                            })
                        }
                    }
                }
                $autocomplete.show()
            }
            var listsize = $panle.find(".autocomplete li").size();
            $panle.find(".autocomplete li").eq(0).addClass("hovers");
            //监听上下键
            if (event.keyCode == 38) {
                if (cus < 1) {
                    cus = listsize - 1;
                    $panle.find(".autocomplete li").removeClass();
                    $panle.find(".autocomplete li").eq(cus).addClass("hovers");
                    var text = $panle.find(".autocomplete li").eq(cus).text();
                    var value = $panle.find(".autocomplete li").eq(cus).attr("data");
                    var select = $panle.find(selectytf.inputID).attr("select") + "('" + value + "','" + text + "')";
                    eval(select);
                    $panle.find(selectytf.inputID).val(text);
                    $panle.find(selectytf.inputID).attr("data", value);
                } else {
                    cus--;
                    $panle.find(".autocomplete li").removeClass();
                    $panle.find(".autocomplete li").eq(cus).addClass("hovers");
                    var text = $panle.find(".autocomplete li").eq(cus).text();
                    var value = $panle.find(".autocomplete li").eq(cus).attr("data");
                    var select = $panle.find(selectytf.inputID).attr("select") + "('" + value + "','" + text + "')";
                    eval(select);
                    $panle.find(selectytf.inputID).val(text);
                    $panle.find(selectytf.inputID).attr("data", value);
                }
            }
            if (event.keyCode == 40) {
                if (cus < (listsize - 1)) {
                    cus++;
                    $panle.find(".autocomplete li").removeClass();
                    $panle.find(".autocomplete li").eq(cus).addClass("hovers");
                    var text = $panle.find(".autocomplete li").eq(cus).text();
                    var value = $panle.find(".autocomplete li").eq(cus).attr("data");
                    var select = $panle.find(selectytf.inputID).attr("select") + "('" + value + "','" + text + "')";
                    eval(select);
                    $panle.find(selectytf.inputID).val(text);
                    $panle.find(selectytf.inputID).attr("data", value);
                } else {
                    cus = 0;
                    $panle.find(".autocomplete li").removeClass();
                    $panle.find(".autocomplete li").eq(cus).addClass("hovers");
                    var text = $panle.find(".autocomplete li").eq(cus).text();
                    var value = $panle.find(".autocomplete li").eq(cus).attr("data");
                    var select = $panle.find(selectytf.inputID).attr("select") + "('" + value + "','" + text + "')";
                    eval(select);
                    $panle.find(selectytf.inputID).val(text);
                    $panle.find(selectytf.inputID).attr("data", value);
                }
            }
            //监听回车键
            if (event.keyCode == 13) {
                $(".autocomplete li").removeClass();
                $autocomplete.hide();
                var text = $panle.find(".autocomplete li").eq(cus).text();
                var value = $panle.find(".autocomplete li").eq(cus).attr("data");
                var select = $panle.find(selectytf.inputID).attr("select") + "('" + value + "','" + text + "')";
                eval(select);
                $panle.find(selectytf.inputID).val(text);
                $panle.find(selectytf.inputID).attr("data", value);

            }
        }).blur(function () {
            setTimeout(function () {
                $panle.find(".autocomplete").hide();
            },
            10000)
        })
        $(selectytf.selectID).change(function () {
            var checkText = $panle.find(selectytf.selectID).find("option:selected").text();  //获取Select选择的Text
            var checkValue = $panle.find(selectytf.selectID).val();  //获取Select选择的Value
            var select = $panle.find(selectytf.inputID).attr("select") + "('" + checkValue + "','" + checkText + "')";
            $panle.find(selectytf.inputID).val(checkText);
            $panle.find(selectytf.inputID).attr("data", checkValue);
            eval(select);

        });
        selectytf.getValue = function () {
            return $panle.find(selectytf.inputID).attr("data");
        }
        selectytf.getText = function () {
            return $panle.find(selectytf.inputID).val();
        }
    }
    }
);

